package com.hmall.item.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.hmall.domain.dto.PageDTO;
import com.hmall.domain.pojo.Item;

/**
 * 商品类业务层接口
 *
 * @author xiaojiangshi
 */
public interface IItemService extends IService<Item> {

    /**
     * 分页功能
     *
     * @param page 当前页码
     * @param size 页面大小
     * @return 分页数据
     */
    PageDTO<Item> pageList(Integer page, Integer size);

    /**
     * 根据商品id修改商品状态
     *
     * @param id     商品id
     * @param status 商品状态，1为上架，2为下架
     * @return 是否修改成功
     */
    boolean updateStatusById(Long id, Integer status);

    /**
     * 根据状态修改商品信息
     *
     * @param item 修改的商品信息
     * @return 是否修改成功
     */
    boolean updateByStatus(Item item);

    /**
     * 根据id删除商品
     *
     * @param id 商品id
     * @return 是否删除成功
     */
    boolean removeByIdAndStatus(Long id);

    /**
     * 根据id和订单商品数量，减少库存
     *
     * @param itemId 商品id
     * @param num    商品数量
     * @param status 订单状态
     */
    void reduceIvoById(Long itemId, Integer num, Integer status);
}
